<?php

namespace app\controller\v1\admin;

use app\BaseController;
use app\common\Send;
use app\service\ConfigService;
use think\App;
use think\Request;

/**
 * Config控制器类，用于处理后台配置管理相关请求
 */
class Config extends BaseController
{
    use Send;

    private $configService;

    /**
     * Config类构造方法，注入ConfigService实例
     *
     * @param App $app 应用实例
     * @param ConfigService $configService 配置服务实例
     */
    public function __construct(App $app, ConfigService $configService){
        parent::__construct($app);
        $this->configService = $configService;
    }

    /**
     * 获取配置列表
     *
     * @return mixed 配置列表信息
     */
    public function index(){
        $result = $this->configService->list();
        return self::success($result);
    }

    /**
     * 保存配置信息
     *
     * @param Request $request 请求实例，用于获取请求参数
     * @return mixed 保存结果
     */
    public function save(Request $request){
        $params = $request->param();
        $result = $this->configService->save($params);
        return self::success($result);
    }

    /**
     * 根据配置键名获取配置信息
     *
     * @return mixed 配置信息
     */
    public function getByKey()
    {
        $key = $this->request->param('key','');
        $result = $this->configService->getByKey($key);
        return self::success($result);
    }
}
